Whaddya mean you need to call 911? I'm trying to download music here!

Recent Blog Posts:
The overuse of literal devices…
Phrase Examination III: “Cute as a button”
Confusion over Bitness and applications
Friday August 13th, 2010 2:11 PM
I've been rather busy lately, mostly, with a number of different C# applications I'm working on. Aside from general improvements to BASEParser.NET which I've yet to upload, I've also started a small investigative application called "BCXInfo". the goal of BCXInfo is to acquire information about the state of various parts of the windows OS, such as the various places programs can start at boot, running services, recent eventlog entries, current processes and their memory consumption, etc. The idea is simple- 64-bit Windows doesn't have very many 64-bit exclusive tools. by writing this in .NET, I am essentially writing both a 32-bit and a 64-bit version simultaneously. Because of this I take special "precautions" and additional checking in 64-bit. specifically, I check the nodes under wow3264node, since those will contain the values written by 32-bit applications. Since, At this time, malware is largely 32 bit, it still finds the various entries that a 32-bit program might add, even if said program is trying to install a 32-bit hook into the 64-bit Logon process. At the same time, it still works the same way for 32-bit as your conventional "scanner" tool, such as hijackthis. I've also implemented the ability to perform actions and generate reports based on the contents and properties of files, registry keys, and other specifics of the system, as well as the ability to execute a number of basic "fix" operations, such as deleting files and registry keys. it's still a work in progress but so far it has been rather promising. For the most part, adding new sets of features merely requires me to implement an interface, which usually takes only a few minutes depending on the complexities of the information it is to enumerate.
Thursday, July 1st, 2010 1:47 PM

Lately, I've taken it upon myself to "update" my skills with something a little more modern. I've used C# before but never anything more then a few simple programs here and there, and I decided it was time to actually port or make a new project in it. I chose to rewrite BASeParser for a third time. I felt that I had "lost touch" with some of the algorithms involved, and a refresher could help both my C# ability as well as make improvements. I have to say, the C# version has come along a lot faster then expected. there was still a lot of trial and error debugging, mostly involving 1-off errors in relation to arrays and string indices, but I managed to muddle through. It uses essentially the same algorithms as my VB6 version; what sped up development incredibly was the generic data types that the framework provides- I didn't have to write my own LinkedList-oriented class as I did for VB6 (cformitem) instead, I just created cformitem to contain the relevant members value, operation, etc. and used the generic LinkedList type to create a linkedList of them. Each formula item, like those in the data structures of it's VB6 predecessor, contain a number of critical values which have different meanings depending on it's item type- for a IT_FUNCTION (I kept the constant names that I used before) the "Operation" member is a name of a function- for a IT_OPERATOR, it reflects the operator, such as +, -, etc. Value, for IT_FUNCTION types, is a boxed array of CParser (the main parser class) objects. when the Function needs one of the parameters, the handler merely unboxes a reference to the appropriate CParser and calls it's Execute method. I considered using a separate member to prevent the boxing/unboxing operation, and may very well do so (perhaps I can simply check in the CFormItem class when the Value property is assigned, and if the new value is an array of CParser[] objects it can set an member variable of that type, and the handlers for IT_FUNCTION and related item types can simply grab the value from that member instead of having to unbox the value. There will still be boxing of the value when it is assigned, but largely the burden will occur during the Parse stage, rather then being done repeatedly for each execution.

IDE comments

After spending so much time using Visual Basic 6, Visual Studio 2008's debugger and IDE abilities are something to be amazed at. With VB6, I use an add-in- Codesmart- that provides a lot of the features that Visual Studio 2008 has built in.Refactoring, extract method, etc. The syntax highlighting is a huge improvement over the otherwise basic colouring provided by VB6, not to mention allowing you to choose more then 16 colours. And then there is, of course, the framework itself. hugely diverse, most data structures and features you could ever need are there.

Saturday, April 3rd, 2010 11:13 AM

As is evident if your eyes are working :P I added some advertisements to this page. This is an attempt to try to get something for my efforts with the various parts of maintaining both the website as well as the various downloadable applications that I make available. I certainly enjoy giving my programs away at no charge, even though, upon further thought many of them are at least as good as or even better then commercial equivalents. (for example, BASeParser, which, while only at the moment released as a component of BCScript, by and large outperforms a commercial product called "AXEval" (IIRC) that I found online when I was curious. It Costs upwards of 300 dollars, too, and you can get a better evaluator just by installing BCScript and using the DLL in your own applications, something which I don't mind at all :).

This posting seems a tad short so I think I'll share some "ideas" I had for new applications. These probably won't come around anytime soon but they give some food for thought.

"Grapher"

Currently, I have an otherwise ancient version of this program, a 2-D and 3-D(using Direct3d) function graphing program. It uses an even older version of "BASeParser" that is really just an adapted and heavily modified (bastardized and mutilated describes what I did to it more aptly) version of a functionparser I found online. The project was huge, consisting of 20-30 forms, countless classes and modules, etc. It doesn't run now simply because of all the heavy modifications I've made to the Parser- for example, the original version of the parser didn't support arrays like {1,2,3}... the graphing program had to hack in it's own support for them. It was awful. it worked... but it was slow.

Additionally, the interface is simply unwieldy. far too many forms being created, and no real automatic management of what window you're working in.

My idea is rather simple, and sort of even has a start. To recreate a Graphing program, and take advantage of the power of the BASeParser XP Expression Evaluator, as it stands now. Since I've already written an ActiveX Control that plots and graphs functions it's really just a matter of building a friendly face around the control for managing the functions it plots, and of course creating a 3-d version equivalent, which might be a little more work considering I haven't worked with Direct3d Since I worked on Grapher.

Another Program/Component I want to put back on my plate is my "colour selection" form/window, which I used in a variety of programs. due to a USB Drive failure, I was unable to recovery the form file and therefore lost this little gem. It's rather intermediate to rebuild it and shouldn't take too long, it leverages my Parser as well for the drawing of the selection box, which allowed great customization.

BASeEdit XP: This program was great. I even had it set as my default text editor.

But Alas- in the same disk crash I lost the Application.cls class as well as the resources for the program, which pretty much scrapped the whole thing. I couldn't bear to use the compiled version I had anymore, either. the pain was so great. I had an Older version, "BASEditor Pro" which... well it sorta sucked. Yes I wrote a text editor from scratch, twice. shuddap.

Another thing I've been tossing around the old noggin was the ability to play a game of walls over a network, or the internet. This will probably one of my more enterprising endeavours, but it doesn't take much imagination to see what would be possible with working netplay. haha, tournaments...

Tuesday, January 26th, 2010 11:28 AM

Not much to be told here; editing the website has become exponentially easier now that I purchased Editpad Pro. Excellent product. Notepad++ is a great tool, but it lacked what I needed as far as FTP support is concerned. Now, I can simply open the FTP panel, and edit files directly on the server; in fact, I can manage the entire website from editpad, save of course the blogs and the forum; I can upload images easily, look at the names of pictures so that I don't screw up their URL in the img tag, etc. But this is starting to sound more like a testimonial; anyway, with regards to the site itself, I've made a few slight cosmetic changes, such as the blue gradient in the headers of each item. It's still served up straight from a static page, though. Ideally, the news items would have a backend submission form that I use and the front end would simply load the news entries from the database and format it appropriately; not a huge amount of work but a slight PITA nonetheless, considering my awful luck with the downloads database recently with regards to keeping track of download counts. I recently updated the BCSearch installer; the release version is now at version 1.9. the next version I plan is 2.0, which will include support for a new feature I like to call "action filters" which are basically a group of operations to perform on a set of files, such as renaming, copying, moving, etc.

Sunday, December 27th 2009 8:35 AM

With any luck (and assuming I didn't mess-up my drive to drive partition copy with my new 1.5TB and somehow manage to overwrite my current data drive when the intention was to copy the data drive to the new disk) I will likely release a new version of BCScript soon; I'm starting to document it, also. I found it, oddly, easier to write the language then it has been to document it! In fact, I partly blame my enthusiasm for creating functions and operators and other things to the language for the difficulty I am having documenting it. I'm also planning a small tool that will be used to encrypt/decrypt files using the BCFile stream processing class that performs encryption. The encryption is performed using the Windows crypto API, so it should be pretty secure. It shouldn't be too hard to implement once I get started.

Friday, December 24th 2009 7:06 AM

Revamped the crappy design scheme I had for the main pages. Awful. Simply, Awful, it was. It's not perfect now, but I don't think anybody can disagree that being able to read the text is a major plus. Still planning to implement some changes to the stylesheets and whatnot to facilitate spicing up the news entries shown here... and come to think of it, I've yet to even try to view the downloads page. *shudder*...

Wednesday, December 23rd 2009 4:07 AM

Planning a pretty major- actually, no, scratch that- I'm in the process of implementing some pretty radical new features to the site. For example, counting the number of times a certain file is downloaded (DEAR GAWD! that's AMAZING!)... but seriously, what I was thinking was a bug-tracking, or more precisely, a bug-reporting feature, that would allow anybody using a BASeCamp Program to report bugs they find in it easily. However- I'm not so sure that I'm quite up to the task; the design is pretty good; I have a few pages of designs for database tables and their relationships here, and it seems pretty solid; but If I know myself, I'll get to the point where I can build the database, and then I'll end up just using the same crappy PHP for displaying as I did for testing to make sure the database was being populated properly. Hell, that's pretty much what I'm doing with the downloads page.

Thursday November 19th 2009 10:59 PM

Haven't updated my front page for a while. Looked lonely. Downloads PHP is working, I still need icons for a few of my projects, but adding them will be easy. The "articles" concept might be scrapped in favour of putting such things as blog entries, which has also been neglected. To be fair it's not entirely my fault; I was without internet for a week or so, which makes it a bit difficult to keep a web-site updated. I have a "updates" architecture working fine; my Visual basic programs can now easily query the site and see what version is current, and if it's newer recommend installing it. The GUI part of this still needs work, but I don't intend on releasing the current iteration of BCSearch or BCScript/BASeParser XP without this addition.

Monday October 26th 2009 10:55 PM
Downloads page/database now successfully finished. Next up on the list is a way to create a update class for my VB6 programs and a update.php on the site, which can retrieve updated version information for a given application ID.

Wednesday October 20th 2009 6:13 AM
EXCELLENT progress on the site. the downloads page now uses a MySQL database for storage of the various bits of information. Learned a LOT of PHP over the last few days, enough for some useful content manipulation. Got around to messing with the stylesheets of this and other pages, looks a lot better then it did.

Thursday October 15th 2009 9:52 PM
Started this website. Still trying to learn enough PHP to be useful. Currently most "useful" page made with my PHP abilities so far has been the downloads page. Also the index page displays each other page using an include :), so each page will have the "navigation menu" which is currently just a little bit of text for testing. ("menu item", I believe). The annoying part is I have very little time at the moment for this site, what with work, and moving and everything. (I picked a very bad time to start it). In either case, I also setup a wordpress blog- http://bc-programming.com/blogs.